<?php
class ClasificadosController extends AppController 
{

	var $name = 'Clasificados';
	var $helpers = array('Html', 'Form', 'Javascript','Ajax','Time','Flash');
	var $paginate = array('limit' => 4, 'page' => 1);
	var $components = array('Email');


//==========================================//
	
	function index()
	 {
		$this->Clasificado->recursive = 0;
		$data = $this->Session->read('User');
		//verificar que el usuario este registrado
		
		if($data['User'])
		{
			$id = $data['User']['id'];
			$this->paginate['limit'] = 10;
			$this->set('clasificados', $this->paginate('Clasificado',array('Clasificado.user_id'=>$id)));
		}
		else
		{
			$this->Session->setFlash('Debes iniciar Sesi&oacute;n o registrarte para modificar tus clasificados');
			$this->redirect('/login');
		}
	}
	
//==========================================//

	function ultimos_clasificados()
	{
		$clasificados =  $this->Clasificado->find('all', array('conditions'=>array('Clasificado.activo'=>1),'order'=>'Clasificado.created DESC', 'limit'=>5));
		$this->set('clasificados',$clasificados);
	}

//==========================================//

	function view($id = null)
	{
		if (!$id)
		{
			$this->Session->setFlash(__('Invalid Clasificado.', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->set('clasificado', $this->Clasificado->read(null, $id));

	
	}
	
//==========================================//	
	
	function ver_clasificados($id = null)
	{
		if (!$id) 
		{
			$this->Session->setFlash(__('Invalid Clasificado.', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->set('clasificados', $this->paginate('Clasificado',array('Clasificado.categoria_id'=>$id,'Clasificado.activo'=>1)));
	}

//==========================================//

	function add() 
	{
		$data = $this->Session->read('User');
		if(!$data['User'])
		{
			$this->Session->setFlash('Debes iniciar Sesi&oacute;n o registrarte para modificar tus clasificados');
			$this->redirect('/login');
		}
		
		if (!empty($this->data)) 
		{
			$this->Clasificado->create();
				$data = $this->Session->read('User');
				$this->data['Clasificado']['codigo'] = 0; 
				$this->data['Clasificado']['agent_id'] = 0; 
				$this->data['Clasificado']['activo'] = 1; 
				$this->data['Clasificado']['user_id'] = $data['User']['id']; 
				
				$this->data['Clasificado']['vence']['month'] = intval(date("m")) + 1;
				$this->data['Clasificado']['vence']['day'] = intval(date("d"));
				$this->data['Clasificado']['vence']['year']= intval(date("Y"));
				
				
			if ($this->Clasificado->save($this->data)) 
			{
				$this->Session->setFlash(__('Se guardo el clasificado', true));	
				$this->redirect(array('action'=>'index'));
			} 
			else
			{
				$this->Session->setFlash(__('No se pudo guardar el clasificado por favor intente de nuevo', true));
			}
		}
		
		$categorias = $this->Clasificado->Categoria->find('list', array('fields'=>array('nombre'), 'conditions'=>array('subcat_id >'=>0)));
		$agents = $this->Clasificado->Agent->find('list');
		$users = $this->Clasificado->User->find('list');
		$this->set(compact('categorias', 'agents', 'users'));
	}

//==========================================//

	function add_destacado($metodo = null)
	{
		$data = $this->Session->read('User');
		if(!$data['User'])
		{
			$this->Session->setFlash('Debes iniciar Sesi&oacute;n o registrarte para modificar tus clasificados');
			$this->redirect('/login');
		}
		
		if (!empty($this->data)) {
			$this->Clasificado->create();
				$data = $this->Session->read('User');
				$this->data['Clasificado']['codigo'] = 0; 
				$this->data['Clasificado']['agent_id'] = 0; 
				$this->data['Clasificado']['activo'] = 0;
				$this->data['Clasificado']['destacado'] = 1;
				
				$this->data['Clasificado']['user_id'] = $data['User']['id']; 
				$this->data['Clasificado']['vence']['month'] = intval(date("m")) + 1;
				$this->data['Clasificado']['vence']['day'] = intval(date("d"));
				$this->data['Clasificado']['vence']['year']= intval(date("Y"));
				
			if ($this->Clasificado->save($this->data)) 
			{
			
				$this->Session->setFlash(__('Se guardo el clasificado', true));
				
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('No se pudo guardar el clasificado por favor intente de nuevo', true));
			}
		}
		
			
		$categorias = 
		$this->Clasificado->Categoria->find('list', array('fields'=>array('nombre'), 'conditions'=>array('subcat_id >'=>0,'gratuita'=>0)));
		$this->set('tipo',$metodo);
		$this->set(compact('categorias'));
	}

//==========================================//
	function edit($id = null) 
	{
		$this->Clasificado->recursive = 1;
		$data = $this->Session->read('User');
		if(!$data['User'])
		{
			$this->Session->setFlash('Debes iniciar Sesi&oacute;n o registrarte para modificar tus clasificados');
			$this->redirect('/login');
		}
		
	
		if (!$id && empty($this->data))
		{
			$this->Session->setFlash(__('Clasificado Invalido', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) 
		{
		
			if ($this->Clasificado->save($this->data)) 
			{
			
				$this->Session->setFlash(__('El clasificado se guardo satisfactoriamente', true));
				$this->redirect(array('action'=>'index'));
			
			} 
			else 
			{
				$this->Session->setFlash(__('No se pudo guardar el clasificado, por favor trate de nuevo.', true));
			}
		}
		
		
		
		
		if (empty($this->data)) 
		{
			$this->data = $this->Clasificado->read(null, $id);
			
			//verificar que el clasificado el pertenezca al usuario //	
			if(!($data['User']['id'] == $this->data['Clasificado']['user_id']))
			{
				$this->Session->setFlash(__('No puede modificar un clasificado que no es suyo', true));
				$this->redirect(array('action'=>'index'));
			}
		}
	
		$cat_principal = $this->Clasificado->find('all', array('conditions'=>array('Clasificado.id'=>$id)));
		$main_cat = $cat_principal[0]['Categoria']['subcat_id'];
		if($cat_principal[0]['Clasificado']['destacado'])
		{
		
			$categorias = $this->Clasificado->Categoria->find('list', array('fields'=>array('nombre'), 'conditions'=>array('subcat_id >'=>0,'gratuita'=>1)));
		}
		else
		{
			$categorias = $this->Clasificado->Categoria->find('list', array('fields'=>array('nombre'), 'conditions'=>array('subcat_id >'=>0)));
		}
		$agents = $this->Clasificado->Agent->find('list');
		$users = $this->Clasificado->User->find('list');
		$this->set(compact('categorias','agents','users'));
	}
	
	
//==========================================//
	function delete($id = null)
	 {
		$data = $this->Session->read('User');
		if(!$data['User'])
		{
			$this->Session->setFlash('Debes iniciar Sesi&oacute;n o registrarte para modificar tus clasificados');
			$this->redirect('/login');
		}
	
	
		if (!$id) {
			$this->Session->setFlash(__('Clasificado Invalido', true));
			$this->redirect(array('action'=>'index'));
		}
		
		
		
		if ($this->Clasificado->del($id)) {
			$this->Session->setFlash(__('Clasificado deleted', true));
			$this->redirect(array('action'=>'index'));
		}
	}
	
//==========================================//	
	function search()
	{
		
		if(!empty($this->data))
		{
			$string = $this->data['Clasificado']['string'];
			$pais = $this->data['Clasificado']['pais'];
			$string= strtolower( $string );

		$conditions =array('Clasificado.activo' => '1','or' => array('LOWER(Clasificado.titulo) LIKE' => "%{$string}%",
'LOWER(Clasificado.descripcion) LIKE' => "%{$string}%"), 'and'=>array('Clasificado.pais' => "$pais"));
	
		$search = $this->paginate('Clasificado', $conditions);

	    $this->set('clasificados', $search);
			
		}
		else
		{
			$this->Session->setFlash(__('Ingrese in criterio de busqueda', true));
			$this->redirect('/');
		}
	}
//==========================================//

	function pago()
	{
		$data = $this->Session->read('User');
		if(!$data['User'])
		{
			$this->Session->setFlash('Debes iniciar Sesi&oacute;n o registrarte para modificar tus clasificados');
			$this->redirect('/login');
		}
	
	}

//==========================================//
	function admin_renovar()
	{
		$this->Clasificado->recursive =0;
		
		$vencidos = $this->Clasificado->query('select * from clasificados where vence<NOW() order by codigo, vence ASC');
		
		$numero_vencidos = count($vencidos);
		$mail ="Numero de clasificados vencidos: ". $numero_vencidos;
		$i= 1;
		foreach ($vencidos as $vencido)
		{
			$mensaje = "\r\n\r\n" .'# '.$i;
			$mensaje .= "\r\n".'---------------------------------------';
			$mensaje .= "\r\n"."Codigo: ".$vencido['clasificados']['codigo'];
			$mensaje .= "\r\n"."Fecha de Vencimiento ".$vencido['clasificados']['vence'];
			$mensaje .= "\r\n"."Fecha de Publicacion: ".$vencido['clasificados']['created'];
			$mensaje .= "\r\n"."Titulo: ".$vencido['clasificados']['titulo'];
			$mensaje .= "\r\n"."Telefono: ".$vencido['clasificados']['telefonos'];
			$mensaje .= "\r\n".'---------------------------------------';
			$mail .=$mensaje;
			$i++;
		}

		
			$this->Email->to = 'vencidos@publicidadyclasificados.com';//mail aqui
				$this->Email->replyTo = "vencidos@publicidadyclasificados.com";
				$this->Email->from = "Clasificados vencidos".' <'."vencidos@publicidadyclasificados.com".'>';
				$this->Email->subject = 'Listado de clasificados Vencidos';
				
				if ($this->Email->send($mail)) {
					$this->Session->setFlash('Se enviaron los clasificados vencidos al correo ('.$numero_vencidos.')');
					$this->redirect('index');
				} else {
					$this->Session->setFlash('No se pudo mandar el mail');
					$this->redirect('index');
				}
		
		
	}
	
	
//================Seccion administrativa==========================//
	function admin_index() 
	{
		if(isset($this->params['admin']) && $this->params['admin']) 
		{
		// check that a user is logged in
		    $this->check_user();
	    	}
		

		$this->layout = "admin";
		$this->Clasificado->recursive = 1;
		$this->paginate['limit'] = 50;
		$this->paginate['order']=array('Clasificado.created'=>'DESC','Clasificado.titulo'=>'ASC');
		$this->set('clasificados', $this->paginate());
	}
	
//==========================================//	
	function admin_search() 
	{
		if(isset($this->params['admin']) && $this->params['admin']) 
		{
		// check that a user is logged in
		    $this->check_user();
	    	}
	    	
		$codigo= $this->data['Clasificado']['codigo'];
		$this->layout = "admin";
		$this->Clasificado->recursive = 1;
		$this->set('clasificados', $this->Clasificado->find('all',array('conditions'=>array('codigo'=>$codigo))));
		
		
		
	}
	
	
//==========================================//
	function admin_view($id = null) 
	{
	if(isset($this->params['admin']) && $this->params['admin'])
	 {
		// check that a user is logged in
		    $this->check_user();
	 }
	$this->layout = "admin";
		if (!$id)
		 {
			$this->Session->setFlash(__('Clasificado invalido.', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->set('clasificado', $this->Clasificado->read(null, $id));
	}
	
//==========================================//
	function admin_add()
	{
	if(isset($this->params['admin']) && $this->params['admin']) 
	{
		// check that a user is logged in
		    $this->check_user();
	}
	$this->layout = "admin";
		if (!empty($this->data)) {
			$this->Clasificado->create();
				$datos = $this->Session->read('Agent');
				$this->data['Clasificado']['agent_id'] = $datos['Agent']['id']; 
				$this->data['Clasificado']['user_id'] = 0; 
				
				$this->data['Clasificado']['vence']['month'] = intval(date("m")) + 1;
				$this->data['Clasificado']['vence']['day'] = intval(date("d"));
				$this->data['Clasificado']['vence']['year']= intval(date("Y"));
				
			if ($this->Clasificado->save($this->data)) {
				$this->Session->setFlash(__('Se guardo el clasificado', true)); 
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('No se pudo guardar el clasificado por favor intente de nuevo.', true));
			}
	
			
		}

		$categorias = $this->Clasificado->Categoria->find('list', array('fields'=>array('nombre'), 'conditions'=>array('subcat_id >'=>0)));
		$agents = $this->Clasificado->Agent->find('list');
		$users = $this->Clasificado->User->find('list');
		$this->set(compact( 'categorias', 'agents', 'users'));
	}
	
//==========================================//

	function admin_edit($id = null) 
	{
	if(isset($this->params['admin']) && $this->params['admin']) {
		// check that a user is logged in
		    $this->check_user();
	}
	
	$this->layout = "admin";
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Clasificado Invalido', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) 
		{
			$datos = $this->Session->read('Agent');	
			$this->data['Clasificado']['agent_id'] =$datos['Agent']['id'] ;
				
			if ($this->Clasificado->save($this->data)) 
			{
				$this->Session->setFlash(__('Se guardo satisfactoriamente el clasificado', true));
				$this->redirect(array('action'=>'index'));
			} 
			else 
			{
				$this->Session->setFlash(__('No se pudo Guardar el clasificado por favor intente de nuevo.', true));
			}
		}
		
		if (empty($this->data)) {
			$this->data = $this->Clasificado->read(null, $id);
		
		}
		
		$cat_principal = $this->Clasificado->find('all', array('conditions'=>array('Clasificado.id'=>$id)));
		 
		$main_cat = $cat_principal[0]['Categoria']['subcat_id'];
	
		$categorias = $this->Clasificado->Categoria->find('list', array('fields'=>array('nombre'), 'conditions'=>array('subcat_id >'=>0)));
		$agents = $this->Clasificado->Agent->find('list');
		$users = $this->Clasificado->User->find('list');
		$this->set(compact('categorias','agents','users'));
		
	}

//==========================================//

	function admin_delete($id = null)
	{
		if(isset($this->params['admin']) && $this->params['admin'])
		{
		// check that a user is logged in
		    $this->check_user();
	    }
		if (!$id) 
		{
			$this->Session->setFlash(__('Clasificado invalido', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Clasificado->del($id))
		{
			$this->Session->setFlash(__('Se boro el clasificado', true));
			$this->redirect(array('action'=>'index'));
		}
	}

}

?>
